package com.mosai.alignpro.api.services;

import com.mosai.alignpro.entity.AuditImageReq;
import com.mosai.alignpro.entity.ImageInfo;
import com.mosai.alignpro.entity.ListData;

import java.util.Map;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.QueryMap;

/**
 * Created by Rays on 2020/3/25.
 */
public interface DiagnosisService {

    /**
     * 获取影像列表
     */
    @GET("doctor-api/v1/images")
    Observable<ListData> getImageList(@QueryMap Map<String, String> map);

    /**
     * 获取影像列表，病人端获取
     */
    @GET("patient-api/v1/images")
    Observable<ListData> getImageListByPatient(@QueryMap Map<String, String> map);

    /**
     * 审核确认图片诊断信息
     *
     * @param id 图片id
     */
    @PUT("doctor-api/v1/images/{id}/audit")
    Observable<ImageInfo> auditImage(@Path("id") int id, @Body AuditImageReq req);

    /**
     * 保存编辑后的图片诊断信息
     *
     * @param id 图片id
     */
    @PUT("doctor-api/v1/images/{id}/addDiagnosisRecords")
    Observable<ImageInfo> editImage(@Path("id") int id, @Body AuditImageReq req);

    /**
     * 医生获取影像记录详情
     *
     * @param id 图片id
     */
    @GET("doctor-api/v1/images/{id}")
    Observable<ImageInfo> getImageDetail(@Path("id") int id);

    /**
     * 医生获取影像记录详情，病人端获取
     *
     * @param id 图片id
     */
    @GET("patient-api/v1/images/{id}")
    Observable<ImageInfo> getImageDetailByPatient(@Path("id") int id);

    /**
     * 获取指定病人影像记录
     *
     * @param id 病人id
     */
    @GET("doctor-api/v1/patients/{id}/images")
    Observable<ListData> getPatientImageList(@Path("id") int id, @QueryMap Map<String, String> map);

    /**
     * 病人已读诊疗图片
     *
     * @param id 图片id
     */
    @PUT("patient-api/v1/images/{id}/read")
    Observable<ImageInfo> patientRead(@Path("id") int id);

}
